デフォルトVPCを使うべきではない理由を簡潔にまとめてみた

デフォルトVPCを使うべきではない理由を簡潔にまとめてみた

Clock Icon2025.01.14

はじめに

こんにちは、和田です。

今回はデフォルトVPCについて調査したのでその内容を記載します。

デフォルトVPCとは

デフォルトVPCとはAWSアカウント作成時に各リージョンに作成されるVPCです。
コンソールから確認した時に「デフォルト VPC」が「はい」のステータスのVPCがデフォルトVPCです。
スクリーンショット 2025-01-14 18.12.18.png

デフォルトVPCは、以下のコンポーネントで構成されています。

  • 172.31.0.0/16のCIDRのVPC
  • /20の3つのパブリックサブネット
    • 172.31.0.0/20
    • 172.31.16.0/20
    • 172.31.32.0/20
  • デフォルトVPCにアタッチされたインターネットゲートウェイ
  • 0.0.0.0/0をインターネットゲートウェイにポイントさせるルート
  • デフォルトのセキュリティグループ
  • デフォルトのNACL

default-vpc.png
引用:https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/default-vpc-components.html

デフォルトVPCを使うべきではないのか?

AWSのリファレンスには以下の記載があります。

デフォルト VPC は、すぐに使用を開始する場合や、ブログやシンプルなウェブサイトなど、パブリックインスタンスを起動する場合に適しています。デフォルト VPC のコンポーネントは、必要に応じて変更できます。

https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/default-vpc.html

デフォルトVPCはパブリックサブネット3つを備えた構成のため、 すぐに使う必要があり、パブリックに作成してもよいリソースを作成する ことに適していると読み取れます。

AWSのベストプラクティスとして、基本的にAWSリソースはプライベート(インターネットからのアクセスをさせない)に作成することが推奨されており、その実現のため日々アップデートがされています。

意図せずパブリックにリソースを作成してしまうことを防ぐためにも、前述の すぐに使う必要があり、パブリックに作成してもよいリソースを作成する といった特段の場合以外は、デフォルトVPCは使わない方が良いと考えるべきでしょう。

また、デフォルトVPCやサブネットのCIDRが固定されているため、ネットワーク設計において柔軟性に欠ける特徴があります。新たにプライベートサブネットを作成したり、VPCのCIDRを拡張することも可能ですが、「それであれば初めからわざわざデフォルトVPCを使わなくてよくないか?」と考えられます。

デフォルトVPCの削除

デフォルトVPCは削除することが可能です。
そのため、できれば削除してしまうことをおすすめします。

削除方法については以下のブログを参照ください。
※VPCは関連づけられたリソースがある場合は削除できない仕様になっているので、誤って起動中のリソースごと削除することは防げます。

https://dev.classmethod.jp/articles/delete-default-vpcs-by-cloudshell/
https://dev.classmethod.jp/articles/lambda-backed-custom-resources-delete-default-vpc-yml/

削除したデフォルトVPCの復旧

基本的にデフォルトVPCを使うべきではないという旨を記載してきましたが、AWSの提供するハンズオンでデフォルトVPCを使わないといけないことがあるようです。
そのような場合は復元が可能なため、都度復元するのがよいでしょう。
https://dev.classmethod.jp/articles/default_vpc_del/

最後に

まとめると、デフォルトVPCは

  • セキュリティのベストプラクティス的に使わない方が良い
  • 使わなきゃいけない場合もほとんどない
  • ハンズオンなどで必要な場合は復元できる

ため、削除してしまうことをおすすめします。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.